// 初始化路由及注册
package router

import (
	"gin-admin-api/api"
	"gin-admin-api/config"
	"github.com/gin-gonic/gin"
	swaggerFiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
)

func InitRouter() *gin.Engine {
	//设置启动模式
	gin.SetMode(config.Config.System.Env)
	//创建路由
	router := gin.New()
	//跌机时恢复
	router.Use(gin.Recovery())
	//register注册
	register(router)
	return router
}

// register 路由注册
func register(router *gin.Engine) {
	//todo 后续接口url
	router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
	router.GET("/api/success", api.Success)
	router.GET("/api/failed", api.Failed)
	//菜单相关接口
	router.POST("api/sysMenu/add", api.CreateSysMenu)
	//获取菜单列表
	router.GET("api/sysMenu/list", api.GetSysMenuList)
	//获取菜单详情
	router.GET("api/sysMenu/info", api.GetSysMenu)
	//更新菜单
	router.PUT("api/sysMenu/update", api.UpdateSysMenu)
	//删除菜单
	router.DELETE("api/sysMenu/delete", api.DeleteSysMenu)
	//角色相关接口
	router.POST("api/sysRole/add", api.CreateSysRole)
	//角色列表接口
	router.GET("api/sysRole/list", api.GetSysRoleList)
	//角色详情接口
	router.GET("api/sysRole/info", api.GetSysRole)
	//更新角色接口
	router.PUT("api/sysRole/update", api.UpdateSysRole)
	//删除角色接口
	router.DELETE("api/sysRole/delete", api.DeleteSysRole)
	//设置角色状态
	router.PUT("api/sysRole/updateStatus", api.UpdateSysRoleStatus)
	//角色选择列表
	router.GET("api/sysRole/vo/list", api.GetSysRoleVoList)
	//根据角色的id查询菜单数据
	router.GET("api/sysRole/vo/idList", api.QueryRoleMenuIdList)
	//角色权限分配
	router.PUT("api/sysRole/assignPermissions", api.AssignPermissions)
	//新增管理员接口
	router.POST("api/sysAdmin/add", api.CreateSysAdmin)
	//获取管理员信息
	router.GET("/api/sysAdmin/info", api.GetSysAdminInfo)
}
